package com.adamjwh.pratice.offer;

/**
 * 将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能，但是string不符合数字要求时返回0)，要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。
 */
public class StrToIntTest {
    public int StrToInt(String str) {
        int len = str.length();

        if (len <= 0) {
            return 0;
        }

        int symbol = 1;
        int result = 0;

        char[] chars = str.toCharArray();
        if (chars[0] == '-') {
            symbol = -1;
        }
        for (int i= ((chars[0] == '+' || chars[0] == '-') ? 1 : 0); i<len; i++) {
            if (chars[i] >= '0' && chars[i] <= '9') {
                result = (result << 1) + (result << 3) + (chars[i] - '0');
            } else {
                return 0;
            }
        }

        return result * symbol;
    }
}
